package avicit.bdp.dgs.qa.dao;

import avicit.bdp.common.base.BaseDAO;
import avicit.bdp.dgs.qa.dto.WorkOrderDTO;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @金航数码科技有限责任公司
 * @作者：developer
 * @邮箱：developer@avic-digital.com
 * @创建时间： 2023-05-29
 * @类说明：WorkOrderDAO
 * @修改记录：
 * @注意事项：
 * @主要功能：工单管理DAO
 */
@Repository
public interface WorkOrderDAO extends BaseDAO<WorkOrderDTO> {
    /**
     * 分页查询-根据条件查询工单列表
     * 注意：
     *  1、自己创建的工单；
     *  2、登录用户和当前处理人一致，可以查看工单并进行处理；
     * @param keyWords
     * @param createdBy 工单创建者
     * @param dealUser 工单当前处理人
     * @return
     */
    Page<WorkOrderDTO> queryWorkOrderByCond(@Param("keyWords") String keyWords,
                                            @Param("createdBy") String createdBy,
                                            @Param("dealUser") String dealUser,
                                            @Param("wordSecretList") List<String> wordSecretList);

    /**
     * 查看指定工单
     * @param jobId
     * @param processInstanceId
     * @return
     */
    List<WorkOrderDTO> getWorkOrderByCond(@Param("jobId")String jobId,
                                          @Param("processInstanceId")String processInstanceId);

    /**
     * 查看工单详情
     * @param id
     * @return
     */
    WorkOrderDTO getWorkOrderDetail(@Param("id")String id);


    /**
     * 删除/批量删除工单
     * @param idList
     * @return
     */
    int deleteWorkOrderByCond(@Param("idList")List<String> idList);
}
